'use strict';
//////////////////////////////////////////////////////////////////////////////
// 项目弹窗 封装对象
// =====================
// ##397100##flag
// =====================
// liuyp 2018年11月28日15: 30: 04
// liuyp 2018年12月11日10: 40: 44 投入项目
//////////////////////////////////////////////////////////////////////////////
function modalPlus($uibModal) {
    function open($scope, options){
        // 控制器在调用弹窗时，控制器的作用域传给了myModal中，myModal服务使用该作用域生成了一个子作用域
        // 而子作用域会传给$uibModal组件，$uibModal拿到子作用域后，再生成一个子作用域，所以这里面一共有三个作用域
        // 他们的关系是：控制台作用域->myModal存储数据作用域->$uibModal作用域。
        var op = angular.extend({},{
            templateUrl: '', // 模态框的模板链接，与template必须选择一个
            controller: '', // 可以使用controller的名字，也可以直接指定处理方法
            size: '',// 模态框的大小 sm、lg或不填
            windowClass: '',// 为窗口添加额外的样式
            backdrop: true, // 背景是否置灰，除了true/false外，还可以指定为'static'，即点击背景不能关闭模态框
            scope: null, // 父级的 scope实例
            resolve: null, // 用于传值
            animation: true, // 显示模态框是否带动画效果
            // appendTo: 'body', // 添加到什么元素中
            openByWho: '' // 被谁打开
        },options)
        op.scope = $scope.$new();
        op.scope.openByWho = op.openByWho;
        // sunScope.$parent.$parent
        var modalInstance = $uibModal.open(op);
        op.scope.modalInstance = modalInstance;
        op.scope.ok = modalInstance.close;
        op.scope.cancel = modalInstance.dismiss;
        modalInstance.result.then(
            function () { op.ok&&op.ok() },
            function () { op.cancel&&op.cancel() }
       )
    }
    function util($scope){
        var $scope_modal = $scope.$parent
        var $scope_father = $scope_modal.$parent
        return {
            openBy: $scope_modal.openByWho, // 谁打开我 目的弹框独立 可验证上层
            close: $scope_modal.modalInstance.close, // 关闭本身逻辑 触发 ok
            cancel: $scope_modal.modalInstance.dismiss, // 取消按钮逻辑 触发 cancel
            $scope_father: $scope_father, // 父类作用域
            $scope_me: $scope, // 本作用域
            isiframe: true
        }
    }
    return {
        open: open,
        util: util
    }
}
exports = module.exports = modalPlus;